package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.Date;

/**
 * 外地车分析
 */
public interface DubboAnalyzeOutsideVehService {
       /**
     * 查询外地车总流量/车辆
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @param flowOrVeh 1:统计流量 2:统计车辆
     * @return OutsideVehDto
     */
    public ResultPojo sumOutsideVeh(String token, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime,Integer flowOrVeh);
    /**
     * 查询外地车流量/车辆的趋势、按半小时
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @param flowOrVeh 1:统计流量 2:统计车辆
     * @return  List &lt; OutsideVehDto &gt;
     */
    public ResultPojo trendOutsideVehByHalfHour(String token, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime,Integer flowOrVeh);
    /**
     * 查询外地车流量/车辆的趋势、按天
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @param flowOrVeh 1:统计流量 2:统计车辆
     * @return List &lt; OutsideVehDto &gt;
     */
    public ResultPojo trendOutsideVehByDay(String token, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime,Integer flowOrVeh);

    /**
     * 查询外地车流量/车辆的属地分布
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @param flowOrVeh 1:统计流量 2:统计车辆
     * @return List &lt; OutsideVehByLicenseRegionDto &gt;
     */
    public ResultPojo outsideVehByLicenseRegion(String token, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime,Integer flowOrVeh);


    /**
     * 查询外地车流量的区域排行
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @param num 查询记录数
     * @return List &lt; OutsideVehKeyAreaDto &gt;
     */
    public ResultPojo topOutsideVehByArea(String token, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime,Integer num);


    /**
     * 查询外地车流量的路段排行
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @param num 查询记录数
     * @return  List &lt; OutsideVehKeyRoadDto &gt;
     */
    public ResultPojo outsideVehByRoad(String token, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime,Integer num);



    /**
     * 查询外地车流量的区域流量趋势
     * @param areaId 区域ID
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @return List &lt; OutsideVehDto &gt;
     */
    public ResultPojo trendOutsideVehByArea(String token,String areaId, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime);


    /**
     * 查询外地车流量的区域流量趋势
     * @param roadId 区域ID
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @return List &lt; OutsideVehDto &gt;
     */
    public ResultPojo trendOutsideVehByRoad(String token,String roadId, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime);



    /**
     * 查询外地车活跃区域分布
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @return List &lt; OutsideVehPointDto &gt;
     */
    public ResultPojo topOutsideVehByPoint(String token, Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime);


    /**
     * 查询外地车活跃线路分布
     * @param beginDay 开始时间
     * @param endDay 结束时间
     * @param isOutOfProvince 1:省外  0:省内外地
     * @param isWeekdays 1:工作日  0:周末
     * @param isLongtime 1:外地长期车 0:全部
     * @return List &lt; OutsideVehTrackDto &gt;
     */
    public ResultPojo topOutsideVehByTrack(String token,Date beginDay,Date endDay,Integer isOutOfProvince,Integer isWeekdays,Integer isLongtime);

}
